:art: Format Codes

huangqimin 5 年之前
父节点
当前提交
a5595665af

+ 29 - 27
api/admin_views.py

@@ -2,28 +2,28 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
+import json
6
+from collections import defaultdict
7
+from datetime import datetime
8
+from itertools import chain, groupby
9
+
5 10
 from django.conf import settings
6 11
 from django.db import transaction
12
+from django.db.models import Count, Sum
7 13
 from django_logit import logit
8 14
 from django_response import response
9 15
 from paginator import pagination
10 16
 from TimeConvert import TimeConvert as tc
11
-from django.db.models import Sum, Count
12
-from datetime import datetime
13 17
 
14
-from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, SaleclerkInfo, ModelInfo
15
-from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo, ModelSaleStatisticInfo
18
+from account.models import UserInfo
16 19
 from integral.models import SaleclerkSubmitLogInfo
17 20
 from logs.models import MchInfoEncryptLogInfo
18
-from account.models import UserInfo
21
+from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, SaleclerkInfo
22
+from statistic.models import (ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo,
23
+                              ModelSaleStatisticInfo)
19 24
 from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,
20 25
                                      ProductMachineStatusCode, UserStatusCode)
21 26
 
22
-from collections import defaultdict
23
-import json
24
-from itertools import groupby,chain
25
-
26
-
27 27
 
28 28
 WECHAT = settings.WECHAT
29 29
 
@@ -349,11 +349,11 @@ def statistic_distributor(request):
349 349
         if i2 < len(daily_code1_logs) and daily_logs[i]['ymd'] == daily_code1_logs[i2]['ymd']:
350 350
             daily_logs[i]['code1'] = daily_code1_logs[i2]['num']
351 351
             i2 += 1
352
-        
352
+
353 353
         if i3 < len(daily_code2_logs) and daily_logs[i]['ymd'] == daily_code2_logs[i3]['ymd']:
354 354
             daily_logs[i]['code2'] = daily_code2_logs[i3]['num']
355 355
             i3 += 1
356
-        
356
+
357 357
         if i4 < len(daily_code2_hasScan_logs) and daily_logs[i]['ymd'] == daily_code2_hasScan_logs[i4]['ymd']:
358 358
             daily_logs[i]['has_code2_scan_num'] = daily_code2_hasScan_logs[i4]['num']
359 359
             i4 += 1
@@ -380,15 +380,15 @@ def statistic_distributor(request):
380 380
         if i2 < len(model_code1_logs) and model_logs[i]['model_uni_name'] == model_code1_logs[i2]['model_uni_name']:
381 381
             model_logs[i]['code1'] = model_code1_logs[i2]['num']
382 382
             i2 += 1
383
-        
383
+
384 384
         if i3 < len(model_code2_logs) and model_logs[i]['model_uni_name'] == model_code2_logs[i3]['model_uni_name']:
385 385
             model_logs[i]['code2'] = model_code2_logs[i3]['num']
386 386
             i3 += 1
387
-        
387
+
388 388
         if i4 < len(model_code2_hasScan_logs) and model_logs[i]['model_uni_name'] == model_code2_hasScan_logs[i4]['model_uni_name']:
389 389
             model_logs[i]['has_code2_scan_num'] = model_code2_hasScan_logs[i4]['num']
390 390
             i4 += 1
391
-    
391
+
392 392
     model_logs.sort(key=lambda k: (-k['num']))
393 393
 
394 394
     distributor_logs = list(logs.values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
@@ -413,11 +413,11 @@ def statistic_distributor(request):
413 413
         if i2 < len(distributor_code1_logs) and distributor_logs[i]['distributor_name'] == distributor_code1_logs[i2]['distributor_name']:
414 414
             distributor_logs[i]['code1'] = distributor_code1_logs[i2]['num']
415 415
             i2 += 1
416
-        
416
+
417 417
         if i3 < len(distributor_code2_logs) and distributor_logs[i]['distributor_name'] == distributor_code2_logs[i3]['distributor_name']:
418 418
             distributor_logs[i]['code2'] = distributor_code2_logs[i3]['num']
419 419
             i3 += 1
420
-        
420
+
421 421
         if i4 < len(distributor_code2_hasScan_logs) and distributor_logs[i]['distributor_name'] == distributor_code2_hasScan_logs[i4]['distributor_name']:
422 422
             distributor_logs[i]['has_code2_scan_num'] = distributor_code2_hasScan_logs[i4]['num']
423 423
             i4 += 1
@@ -430,6 +430,7 @@ def statistic_distributor(request):
430 430
         'distributor_logs': distributor_logs
431 431
     })
432 432
 
433
+
433 434
 def dashboard(request):
434 435
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
435 436
     admin_id = request.POST.get('admin_id', '')
@@ -444,7 +445,7 @@ def dashboard(request):
444 445
     except AdministratorInfo.DoesNotExist:
445 446
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
446 447
 
447
-    #销售员统计
448
+    # 销售员统计
448 449
     sale_logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, test_sn=False, status=True)
449 450
 
450 451
     sale_count = sale_logs.count()
@@ -455,7 +456,7 @@ def dashboard(request):
455 456
 
456 457
     sale_distributor_logs = list(sale_logs.values('distributor_name').annotate(num=Count('pk')).order_by('-num'))[:10]
457 458
 
458
-    #消费者统计
459
+    # 消费者统计
459 460
     logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, status=True)
460 461
 
461 462
     consumer_count = logs.count()
@@ -477,6 +478,7 @@ def dashboard(request):
477 478
         'consumer_count': consumer_count,
478 479
     })
479 480
 
481
+
480 482
 def statistic_consumer(request):
481 483
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
482 484
     admin_id = request.POST.get('admin_id', '')
@@ -490,8 +492,8 @@ def statistic_consumer(request):
490 492
         administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
491 493
     except AdministratorInfo.DoesNotExist:
492 494
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
493
-    
494
-    #消费者统计
495
+
496
+    # 消费者统计
495 497
     logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, status=True)
496 498
 
497 499
     daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
@@ -506,7 +508,7 @@ def statistic_consumer(request):
506 508
         if j < len(daily_code1_logs) and daily_logs[i]['ymd'] == daily_code1_logs[j]['ymd']:
507 509
             daily_logs[i]['code1'] = daily_code1_logs[j]['num']
508 510
             j += 1
509
-        
511
+
510 512
         if k < len(daily_code2_logs) and daily_logs[i]['ymd'] == daily_code2_logs[k]['ymd']:
511 513
             daily_logs[i]['code2'] = daily_code2_logs[k]['num']
512 514
             k += 1
@@ -523,11 +525,11 @@ def statistic_consumer(request):
523 525
         if j < len(model_code1_logs) and model_logs[i]['model_uni_name'] == model_code1_logs[j]['model_uni_name']:
524 526
             model_logs[i]['code1'] = model_code1_logs[j]['num']
525 527
             j += 1
526
-        
528
+
527 529
         if k < len(model_code2_logs) and model_logs[i]['model_uni_name'] == model_code2_logs[k]['model_uni_name']:
528 530
             model_logs[i]['code2'] = model_code2_logs[k]['num']
529 531
             k += 1
530
-    
532
+
531 533
     model_logs.sort(key=lambda k: (-k['num']))
532 534
 
533 535
     province_logs = list(logs.values('province').annotate(num=Count('pk')).order_by('province'))
@@ -542,15 +544,15 @@ def statistic_consumer(request):
542 544
         if j < len(province_code1_logs) and province_logs[i]['province'] == province_code1_logs[j]['province']:
543 545
             province_logs[i]['code1'] = province_code1_logs[j]['num']
544 546
             j += 1
545
-        
547
+
546 548
         if k < len(province_code2_logs) and province_logs[i]['province'] == province_code2_logs[k]['province']:
547 549
             province_logs[i]['code2'] = province_code2_logs[k]['num']
548 550
             k += 1
549
-    
551
+
550 552
     province_logs.sort(key=lambda k: (-k['num']))
551 553
 
552 554
     return response(200, 'Get Consumer Statistic Success', u'获取消费者统计成功', data={
553 555
         'daily_logs': daily_logs,
554 556
         'model_logs': model_logs,
555 557
         'province_logs': province_logs,
556
-    })
558
+    })

+ 1 - 1
api/encrypt_views.py

@@ -145,7 +145,7 @@ def decrypt(request, v='v2'):
145 145
         mdli.decrypt_count += 1
146 146
         mdli.save()
147 147
 
148
-    #弃用老版本的劵形式,和会员系统统一
148
+    # 弃用老版本的劵形式,和会员系统统一
149 149
     if v == 'v1':
150 150
         has_unexpired_activity = False
151 151
         coupon_infos = {}

+ 7 - 6
api/mch_views.py

@@ -2,6 +2,8 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
+import json
6
+
5 7
 from django.conf import settings
6 8
 from django.contrib.auth.hashers import check_password
7 9
 from django.db import transaction
@@ -10,19 +12,18 @@ from django_response import response
10 12
 from pywe_miniapp import get_phone_number
11 13
 from pywe_storage import RedisStorage
12 14
 from TimeConvert import TimeConvert as tc
13
-import json
14 15
 
15
-from logs.models import MchInfoEncryptLogInfo
16 16
 from account.models import UserInfo
17
+from coupon.models import CouponInfo, UserCouponInfo
17 18
 from integral.models import SaleclerkSubmitLogInfo
19
+from logs.models import MchInfoEncryptLogInfo
18 20
 from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo,
19 21
                         LatestAppInfo, LatestAppScreenInfo, ModelInfo, OperatorInfo)
20
-from coupon.models import CouponInfo, UserCouponInfo
21 22
 from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo
22 23
 from utils.error.errno_utils import (AdministratorStatusCode, OperatorStatusCode, ProductBrandStatusCode,
23 24
                                      ProductModelStatusCode, UserStatusCode)
24 25
 from utils.redis.connect import r
25
-from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MINI_PROGRAM_GIS_LIST, MEMBER_UPGRADE_INFO
26
+from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO, MINI_PROGRAM_GIS_LIST
26 27
 
27 28
 
28 29
 WECHAT = settings.WECHAT
@@ -264,7 +265,7 @@ def consumer_info_api(request):
264 265
 
265 266
         if encrypt_logs:
266 267
             code_version = encrypt_logs[0].version
267
-    
268
+
268 269
     user.code_version = code_version
269 270
     user.save()
270 271
 
@@ -313,7 +314,7 @@ def consumer_info_api(request):
313 314
                 )
314 315
             except:
315 316
                 continue
316
-        
317
+
317 318
         # 更新销售员提交的表
318 319
         logs = SaleclerkSubmitLogInfo.objects.filter(code=serialNo, model_pk=model.pk)
319 320
         for log in logs:

+ 2 - 2
api/member_views.py

@@ -14,8 +14,8 @@ from account.models import UserInfo
14 14
 from coupon.models import UserCouponInfo
15 15
 from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityInfo, MemberActivitySigninInfo,
16 16
                            MemberActivitySignupInfo, RightInfo)
17
-from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode, MemberRightStatusCode,
18
-                                     UserStatusCode)
17
+from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode,
18
+                                     MemberRightStatusCode, UserStatusCode)
19 19
 from utils.redis.connect import r
20 20
 from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO
21 21
 from utils.redis.rshot import get_member_shot_data

+ 3 - 2
api/model_views.py

@@ -10,7 +10,7 @@ from django_response import response
10 10
 from paginator import pagination
11 11
 
12 12
 from account.models import UserInfo
13
-from mch.models import AdministratorInfo, ModelInfo, ModelCameraBodyInfo
13
+from mch.models import AdministratorInfo, ModelCameraBodyInfo, ModelInfo
14 14
 from utils.error.errno_utils import AdministratorStatusCode, ProductModelStatusCode, UserStatusCode
15 15
 
16 16
 
@@ -159,6 +159,7 @@ def model_list(request):
159 159
         'left': left,
160 160
     })
161 161
 
162
+
162 163
 @logit
163 164
 def model_name_list(request):
164 165
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
@@ -175,7 +176,7 @@ def model_name_list(request):
175 176
     models = list(models)
176 177
 
177 178
     return response(200, 'Get Model Name List Success', u'获取型号列表成功', {
178
-        'models': sorted(set(models),key=models.index)
179
+        'models': sorted(set(models), key=models.index)
179 180
     })
180 181
 
181 182
 

+ 4 - 4
api/urls.py

@@ -5,8 +5,8 @@ from django_file_upload import views as file_views
5 5
 
6 6
 from account import tourguide_views
7 7
 from account import views as account_views
8
-from api import (admin_views, clerk_views, distributor_views, encrypt_views, mch_views, member_views, model_views,
9
-                 operator_views, refresh_views, sr_views, staff_views, log_views)
8
+from api import (admin_views, clerk_views, distributor_views, encrypt_views, log_views, mch_views, member_views,
9
+                 model_views, operator_views, refresh_views, sr_views, staff_views)
10 10
 from box import views as box_views
11 11
 from geo import views as geo_views
12 12
 from group import (groupuser_views, lensman_views, tourguidegroup_views, tourguidegroupadmin_views,
@@ -230,8 +230,8 @@ urlpatterns += [
230 230
     url(r'^clerk/integral/list$', sale_views.clerk_integral_list_api, name='clerk_integral_list_api'),  # 店员销售积分列表
231 231
     url(r'^clerk/model/list$', sale_views.clerk_model_list_api, name='clerk_model_list_api'),
232 232
     url(r'^clerk/checkout/serialNo$', sale_views.clerk_checkout_serialNo_api, name='clerk_checkout_serialNo_api'),  # 校验序列号
233
-    url(r'^clerk/query/coupon$', sale_views.clerk_query_coupon, name='clerk_query_coupon'), 
234
-    url(r'^clerk/writeoff/coupon$', sale_views.clerk_writeoff_coupon, name='clerk_writeoff_coupon'), 
233
+    url(r'^clerk/query/coupon$', sale_views.clerk_query_coupon, name='clerk_query_coupon'),
234
+    url(r'^clerk/writeoff/coupon$', sale_views.clerk_writeoff_coupon, name='clerk_writeoff_coupon'),
235 235
 ]
236 236
 
237 237
 urlpatterns += [

+ 1 - 1
commands/management/commands/gis.py

@@ -9,9 +9,9 @@ from django.db import transaction
9 9
 from django_models_ext import ProvinceModelMixin, ProvinceShortModelMixin
10 10
 from django_six import CompatibilityBaseCommand, close_old_connections
11 11
 
12
-from statistic.models import ConsumeProvinceSaleStatisticInfo
13 12
 from account.models import UserInfo
14 13
 from mch.models import ConsumeInfoSubmitLogInfo
14
+from statistic.models import ConsumeProvinceSaleStatisticInfo
15 15
 from utils.redis.connect import r
16 16
 from utils.redis.rkeys import MINI_PROGRAM_GIS_LIST
17 17
 

+ 1 - 2
commands/management/commands/membercard.py

@@ -89,7 +89,6 @@ class Command(CompatibilityBaseCommand):
89 89
                     log.phone = userinfo.phone
90 90
                     log.save()
91 91
 
92
-
93 92
                 try:
94 93
                     phoneinfo = requests.get(settings.PHONE_2_ADMINISTRATIVE_DIVISION.format(phone))
95 94
                 except Exception as e:
@@ -100,7 +99,7 @@ class Command(CompatibilityBaseCommand):
100 99
                 except Exception as e:
101 100
                     logger.info(e.message)
102 101
                     continue
103
-                
102
+
104 103
                 logs = ConsumeInfoSubmitLogInfo.objects.filter(user_id=userinfo.user_id)
105 104
                 for log in logs:
106 105
                     log.province = log.province if log.lat and log.lon else province_name

+ 1 - 1
commands/management/commands/subscribe.py

@@ -8,11 +8,11 @@ from django_redis_connector import connector
8 8
 from django_six import CompatibilityBaseCommand, close_old_connections
9 9
 from django_we.models import SubscribeUserInfo
10 10
 from pywe_storage import RedisStorage
11
-from pywe_user import get_user_info
12 11
 
13 12
 from account.models import UserInfo
14 13
 from mch.models import BrandInfo
15 14
 from pre.custom_message import sendcustomwxamessage
15
+from pywe_user import get_user_info
16 16
 from utils.redis.rkeys import SUBSCRIBE_USERINFO_LIST
17 17
 
18 18
 

+ 0 - 1
coupon/models.py

@@ -51,7 +51,6 @@ class CouponInfo(BaseModelMixin):
51 51
     def coupon_image_url(self):
52 52
         return upload_file_url(self.coupon_image)
53 53
 
54
-
55 54
     @property
56 55
     def final_expire_at(self):
57 56
         if self.coupon_expire_type == CouponInfo.FIXED_EXPIRED_TIME:

+ 0 - 2
integral/admin.py

@@ -1,6 +1,5 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
-from daterange_filter.filter import DateRangeFilter
4 3
 from django.contrib import admin
5 4
 from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin
6 5
 
@@ -21,6 +20,5 @@ class SaleclerkSubmitLogInfoAdmin(AdvancedExportExcelModelAdmin, ReadOnlyModelAd
21 20
     search_fields = ('code', 'trackingNo', 'distributor_name', 'clerk_name', 'model_name', 'model_uni_name')
22 21
 
23 22
 
24
-
25 23
 admin.site.register(SaleclerkIntegralIncomeExpensesInfo, SaleclerkIntegralIncomeExpensesInfoAdmin)
26 24
 admin.site.register(SaleclerkSubmitLogInfo, SaleclerkSubmitLogInfoAdmin)

+ 2 - 2
logs/models.py

@@ -18,8 +18,8 @@ class MchInfoEncryptLogInfo(BaseModelMixin):
18 18
 
19 19
     sn = models.CharField(_(u'sn'), max_length=32, blank=True, null=True, help_text=u'序列号', db_index=True)
20 20
 
21
-    #二维码版本
22
-    version=models.IntegerField(_(u'version'), default=2, help_text=u'二维码版本', db_index=True)
21
+    # 二维码版本
22
+    version = models.IntegerField(_(u'version'), default=2, help_text=u'二维码版本', db_index=True)
23 23
 
24 24
     # 一物一码
25 25
     application_id = models.IntegerField(_(u'application_id'), default=0, help_text=u'申请单号', db_index=True)

+ 1 - 0
marketcode/tests.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.test import TestCase
5 5
 
6
+
6 7
 # Create your tests here.

+ 1 - 0
marketcode/views.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.shortcuts import render
5 5
 
6
+
6 7
 # Create your views here.

+ 3 - 2
mch/admin.py

@@ -8,8 +8,9 @@ from django_admin import AdvancedActionsModelAdmin, AdvancedExportExcelModelAdmi
8 8
 from django_models_ext import ProvinceShortModelMixin
9 9
 from pysnippets.strsnippets import strip
10 10
 
11
-from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, CameraModelInfo, ConsumeInfoSubmitLogInfo, DistributorInfo,
12
-                        LatestAppInfo, LatestAppScreenInfo, ModelInfo, ModelCameraBodyInfo, OperatorInfo, SaleclerkInfo)
11
+from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, CameraModelInfo, ConsumeInfoSubmitLogInfo,
12
+                        DistributorInfo, LatestAppInfo, LatestAppScreenInfo, ModelCameraBodyInfo, ModelInfo,
13
+                        OperatorInfo, SaleclerkInfo)
13 14
 from utils.redis.rshot import update_member_shot_data
14 15
 
15 16
 

+ 14 - 14
mch/models.py

@@ -755,17 +755,17 @@ class ActivityInfo(BaseModelMixin):
755 755
     @property
756 756
     def coupon_info3(self):
757 757
         try:
758
-            coupon_info = CouponInfo.objects.get(coupon_id=self.coupon_id)
759
-            return {
760
-                'coupon_image': coupon_info.coupon_image_url,
761
-                'coupon_expire_at': coupon_info.coupon_expire_at,
762
-                'coupon_value': coupon_info.coupon_value,
763
-                'coupon_title': coupon_info.coupon_title,
764
-                'coupon_valid_period': coupon_info.coupon_valid_period,
765
-                'coupon_id': coupon_info.coupon_id,
766
-                'activity_id': self.activity_id,
767
-                'activity_name': self.activity_name,
768
-            }
769
-        except:
770
-            return {}
771
-        
758
+            coupon = CouponInfo.objects.get(coupon_id=self.coupon_id)
759
+        except CouponInfo.DoesNotExist:
760
+            coupon = None
761
+
762
+        return {
763
+            'coupon_image': coupon.coupon_image_url,
764
+            'coupon_expire_at': coupon.coupon_expire_at,
765
+            'coupon_value': coupon.coupon_value,
766
+            'coupon_title': coupon.coupon_title,
767
+            'coupon_valid_period': coupon.coupon_valid_period,
768
+            'coupon_id': coupon.coupon_id,
769
+            'activity_id': self.activity_id,
770
+            'activity_name': self.activity_name,
771
+        } if coupon else {}

+ 12 - 8
page/sale_views.py

@@ -2,6 +2,10 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
+import os
6
+import string
7
+import sys
8
+
5 9
 from django.conf import settings
6 10
 from django.db import transaction
7 11
 from django_logit import logit
@@ -10,16 +14,14 @@ from paginator import pagination
10 14
 from TimeConvert import TimeConvert as tc
11 15
 
12 16
 from account.models import UserInfo
17
+from coupon.models import UserCouponInfo
13 18
 from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo
14 19
 from logs.models import MchInfoEncryptLogInfo
15
-from coupon.models import UserCouponInfo
16 20
 from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo, SaleclerkInfo
17 21
 from statistic.models import (DistributorSaleStatisticInfo, ModelSaleStatisticInfo, ProvinceSaleStatisticInfo,
18 22
                               SaleclerkSaleStatisticInfo, SaleStatisticInfo)
19
-from utils.error.errno_utils import (ProductBrandStatusCode, ProductDistributorStatusCode, ProductMachineStatusCode,
20
-                                     ProductModelStatusCode, SaleclerkStatusCode, CouponStatusCode)
21
-import os,sys,string
22
-
23
+from utils.error.errno_utils import (CouponStatusCode, ProductBrandStatusCode, ProductDistributorStatusCode,
24
+                                     ProductMachineStatusCode, ProductModelStatusCode, SaleclerkStatusCode)
23 25
 
24 26
 
25 27
 @logit
@@ -99,7 +101,7 @@ def clerk_sale_submit_api(request):
99 101
     # 是否被消费者扫过
100 102
     has_scan = ConsumeInfoSubmitLogInfo.objects.filter(model_id=model.model_id, serialNo=serialNo).exists()
101 103
 
102
-    #是否是新二维码,即统览码2
104
+    # 是否是新二维码,即统览码2
103 105
     if not code_version:
104 106
         code_version = 1
105 107
         code = filter(lambda ch: ch in '0123456789', serialNo)
@@ -458,6 +460,7 @@ def clerk_query_coupon(request):
458 460
         'user_coupon': user_coupon.data
459 461
     })
460 462
 
463
+
461 464
 @logit
462 465
 def clerk_writeoff_coupon(request):
463 466
     brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK)
@@ -490,7 +493,7 @@ def clerk_writeoff_coupon(request):
490 493
     try:
491 494
         user_coupon = UserCouponInfo.objects.get(user_coupon_id=user_coupon_id)
492 495
         if user_coupon.has_used:
493
-            return response(CouponStatusCode.COUPON_HAS_USED) 
496
+            return response(CouponStatusCode.COUPON_HAS_USED)
494 497
         elif user_coupon.is_coupon_admin_writeoff:
495 498
             return response(CouponStatusCode.COUPON_PERMISSION_DENIED)
496 499
         elif not user_coupon.has_expired:
@@ -502,12 +505,13 @@ def clerk_writeoff_coupon(request):
502 505
             user_coupon.used_at = tc.utc_datetime()
503 506
             user_coupon.save()
504 507
         else:
505
-          return response(CouponStatusCode.COUPON_EXPIRED)
508
+            return response(CouponStatusCode.COUPON_EXPIRED)
506 509
     except UserCouponInfo.DoesNotExist:
507 510
         return response(CouponStatusCode.COUPON_NOT_FOUND)
508 511
 
509 512
     return response(200, 'Write Off Coupon Success', u'劵核销成功')
510 513
 
514
+
511 515
 @logit
512 516
 def clerk_checkout_serialNo_api(request):
513 517
     brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK)

+ 1 - 1
shells/views.py

@@ -3,8 +3,8 @@
3 3
 from django.conf import settings
4 4
 from django_redis_connector import connector
5 5
 from pywe_storage import RedisStorage
6
-from pywe_user import get_all_users
7 6
 
7
+from pywe_user import get_all_users
8 8
 from utils.redis.rkeys import SUBSCRIBE_USERINFO_LIST
9 9
 
10 10
 

+ 1 - 0
staff/tests.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.test import TestCase
5 5
 
6
+
6 7
 # Create your tests here.

+ 1 - 0
staff/views.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.shortcuts import render
5 5
 
6
+
6 7
 # Create your views here.

+ 1 - 0
utils/error/errno_utils.py

@@ -256,6 +256,7 @@ class PermissionStatusCode(BaseStatusCode):
256 256
     """ 4099xx 权限相关错误码 """
257 257
     PERMISSION_DENIED = StatusCodeField(409900, 'Permission Denied', description=u'权限不足')
258 258
 
259
+
259 260
 class CouponStatusCode(BaseStatusCode):
260 261
     """ 4050xx 优惠劵相关错误码 """
261 262
     COUPON_NOT_FOUND = StatusCodeField(405001, 'Coupon Not Found', description=u'劵不存在')